export default {
  props: {
    value: null,
    label: null,
    clearable: [Boolean],
    readonly: [Boolean],
    hideDetails: [Boolean],
  },
  data() {
    return {
      value_in: this.value,
      oldValue: this.value,
    }
  },
  watch: {
    value_in(newVal) {
      // 当 zinput 的值作为查询条件时，我们需要，当清空该属性时，后台获得null以便不进行查询过滤
      // 当 zinput 的值作为model准备入库时，我们需要，当清空该属性时，后台获得字符串''，以便可以轻松将字段置空。
      // 而 <v-text-field clearable="clearable"/> clearabe=true时若按清除按钮 则后台就是获得null  若直接逐个删除全部字符后台获得空字符串''
      if (this.clearable && newVal === '') {
        this.setValue(null)
      } else {
        this.setValue(newVal)
      }
    },
  },
  created() {
  },
  methods: {
    setValue(newValue) {
      this.oldValue = this.value
      if (newValue !== this.oldValue) {
        this.$emit('change', newValue)
        this.$emit('input', newValue)
      }
    },
  }
};
